﻿using System.Text;
using static System.Console;

Console.Title = "string类型的驻留机制";

string str1 = "Hello";
string str2 = "Hello";
string str3 = new string("Hello");


WriteLine($"str1 == str2:{str1 == str2}");
WriteLine($"str1 和 str2的地址是否相同：{object.ReferenceEquals(str1, str2)}");

WriteLine($"str1 == str3:{str1 == str3}");
WriteLine($"str1 和 str3的地址是否相同：{object.ReferenceEquals(str1, str3)}");


string str4 = "He";
string str5 = "llo";
string str6 = str4 + str5;

WriteLine($"str1 == str6:{str1 == str6}");
WriteLine($"str1 和 str6的地址是否相同：{object.ReferenceEquals(str1, str6)}");



//str 在使用'+'拼接的时候，每进行一次'+'操作，就会生成一个新的内存地址
string str = "l";
str += "p";
str += "h";


//使用StringBuilder进行拼接的时候，只会生成一个内存地址。sb始终使用一个内存地址
StringBuilder sb = new StringBuilder();
sb.Append("l");
sb.Append("p");
sb.Append("h");

ReadKey();


